<p>Through Java's evolution keywords have been added. While code that uses those words as identifiers may be compilable under older versions of Java,
it will not be under modern versions. </p>
<p>Following keywords are marked as invalid identifiers </p>
<table>
  <tbody>
    <tr>
      <th>Keyword</th>
      <th>Added</th>
    </tr>
    <tr>
      <td><code>_</code></td>
      <td>9</td>
    </tr>
    <tr>
      <td><code>enum</code></td>
      <td>5.0</td>
    </tr>
  </tbody>
</table>
<p><code>assert</code> and <code>strictfp</code> are another example of valid identifiers which became keywords in later versions, but are not
supported by this rule.</p>
<h2>Noncompliant Code Example</h2>
<pre>
public void doSomething() {
  int enum = 42;            // Noncompliant
  String _ = "";   // Noncompliant
}
</pre>
<h2>Compliant Solution</h2>
<pre>
public void doSomething() {
  int magic = 42;
}
</pre>

